//
// $Id: AlternateMovesHelper.h 6 2010-08-05 19:43:27Z principiadriver $
//
// Written by
//  Michael Klein <michael.klein@puffin.lb.shuttle.de>
//
// This file is part of Alternate Moves.
//
// This  is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.
//

#import <Cocoa/Cocoa.h>
#import "WindowHandler.h"
#import "AlternateMovesRemoteProtocol.h"


@interface AlternateMovesHelper : NSObject<AlternateMovesRemoteProtocol>
{
    IBOutlet id infoWindow;
    IBOutlet id infoWindowText;

    NSObject<WindowHandler> *windowHandler;
    NSTimer *timer;

    NSBundle *bundle;

    NSBundle *axEngine;
    NSBundle *x11Engine;

    CGPoint initialLoc, lastLoc;
    CGRect  initialRect, nextRect;

    BOOL resizing;

    CFMachPortRef buttonDownTap;
    CFMachPortRef buttonUpTap;
}


- (CGEventRef)mouseEventWithProxy:(CGEventTapProxy)proxy
                             type:(CGEventType)tye
                            event:(CGEventRef)event;
- (void)timerFired:(NSTimer*)timer;
- (void)setupTimer:(double)delay;
- (void)updateWindowRect;

- (void)remoteAccessServer:(id)object;

- (NSString*)bundleNameAndVersion;
- (void)synchronizePreferences;
- (void)terminate;


@end
